<!doctype html>
<html lang="en" class="no-js">

  <!-- Mirrored from flatbuffers.dev/flatc/ by HTTrack Website Copier/3.x [XR&CO'2014], Thu, 08 May 2025 07:01:57 GMT -->
  <!-- Added by HTTrack --><meta http-equiv="content-type"
    content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
  <head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">

    <link rel="canonical" href="index.html">

    <link rel="prev" href="../building/index.html">

    <link rel="next" href="../schema/index.html">

    <link rel="icon" href="../assets/images/favicon.png">
    <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.9">

    <title>FlatBuffers 编译器 (flatc) - FlatBuffers 文档</title>

    <link rel="stylesheet" href="../assets/stylesheets/main.4af4bdda.min.css">

    <link rel="stylesheet"
      href="../assets/stylesheets/palette.06af60db.min.css">

    <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
    <link rel="stylesheet"
      href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback">
    <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>

    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>

  </head>

  <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo"
    data-md-color-accent="indigo">

    <input class="md-toggle" data-md-toggle="drawer" type="checkbox"
      id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox"
      id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">

      <a href="#flatbuffers-compiler-flatc" class="md-skip">
        跳到内容（Skip to content）
      </a>

    </div>
    <div data-md-component="announce">

    </div>

    <header class="md-header md-header--shadow" data-md-component="header">
      <nav class="md-header__inner md-grid" aria-label="Header">
        <a href="../index.html" title="FlatBuffers Docs （文档）"
          class="md-header__button md-logo" aria-label="FlatBuffers Docs （文档）"
          data-md-component="logo">

          <img src="../assets/flatbuffers_logo.svg" alt="logo">

        </a>
        <label class="md-header__button md-icon" for="__drawer">

          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path
              d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z" /></svg>
        </label>
        <div class="md-header__title" data-md-component="header-title">
          <div class="md-header__ellipsis">
            <div class="md-header__topic">
              <span class="md-ellipsis">
                FlatBuffers Docs （文档）
              </span>
            </div>
            <div class="md-header__topic" data-md-component="header-topic">
              <span class="md-ellipsis">

                FlatBuffers 编译器 (flatc)

              </span>
            </div>
          </div>
        </div>

        <form class="md-header__option" data-md-component="palette">

          <input class="md-option" data-md-color-media
            data-md-color-scheme="default" data-md-color-primary="indigo"
            data-md-color-accent="indigo" aria-label="Switch to dark mode"
            type="radio" name="__palette" id="__palette_0">

          <label class="md-header__button md-icon"
            title="切换到深色模式（Switch to dark mode）"
            for="__palette_1" hidden>
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path
                d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z" /></svg>
          </label>

          <input class="md-option" data-md-color-media
            data-md-color-scheme="slate" data-md-color-primary="indigo"
            data-md-color-accent="indigo" aria-label="Switch to light mode"
            type="radio" name="__palette" id="__palette_1">

          <label class="md-header__button md-icon"
            title="切换到浅色模式（Switch to light mode）"
            for="__palette_0" hidden>
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path
                d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z" /></svg>
          </label>

        </form>

        <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>

        <div class="md-header__source">
          <a href="https://github.com/google/flatbuffers"
            title="前往代码库（Go to repository）" class="md-source"
            data-md-component="source">
            <div class="md-source__icon md-icon">

              <svg xmlns="http://www.w3.org/2000/svg"
                viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path
                  d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" /></svg>
            </div>
            <div class="md-source__repository">
              google/FlatBuffers
            </div>
          </a>
        </div>

      </nav>

    </header>

    <div class="md-container" data-md-component="container">

      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">

          <div class="md-sidebar md-sidebar--primary"
            data-md-component="sidebar" data-md-type="navigation">
            <div class="md-sidebar__scrollwrap">
              <div class="md-sidebar__inner">

                <nav class="md-nav md-nav--primary" aria-label="导航（Navigation）"
                  data-md-level="0">
                  <label class="md-nav__title" for="__drawer">
                    <a href="../index.html" title="FlatBuffers Docs （文档）"
                      class="md-nav__button md-logo"
                      aria-label="FlatBuffers Docs （文档）"
                      data-md-component="logo">

                      <img src="../assets/flatbuffers_logo.svg" alt="logo">

                    </a>
                    FlatBuffers Docs （文档）
                  </label>

                  <div class="md-nav__source">
                    <a href="https://github.com/google/flatbuffers"
                      title="前往代码库（Go to repository）" class="md-source"
                      data-md-component="source">
                      <div class="md-source__icon md-icon">

                        <svg xmlns="http://www.w3.org/2000/svg"
                          viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path
                            d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" /></svg>
                      </div>
                      <div class="md-source__repository">
                        google/FlatBuffers
                      </div>
                    </a>
                  </div>

                  <ul class="md-nav__list" data-md-scrollfix>

                    <li class="md-nav__item">
                      <a href="../index.html" class="md-nav__link">

                        <span class="md-ellipsis">
                          Overview（概述）

                        </span>

                      </a>
                    </li>

                    <li class="md-nav__item">
                      <a href="../quick_start/index.html" class="md-nav__link">

                        <span class="md-ellipsis">
                          Quick Start（快速入门）

                        </span>

                      </a>
                    </li>

                    <li class="md-nav__item">
                      <a href="../tutorial/index.html" class="md-nav__link">

                        <span class="md-ellipsis">
                          Tutorial（教程）

                        </span>

                      </a>
                    </li>

                    <li
                      class="md-nav__item md-nav__item--active md-nav__item--nested">

                      <input class="md-nav__toggle md-toggle " type="checkbox"
                        id="__nav_4" checked>

                      <label class="md-nav__link" for="__nav_4"
                        id="__nav_4_label" tabindex="0">

                        <span class="md-ellipsis">
                          Compiler (flatc)（编译器）

                        </span>

                        <span class="md-nav__icon md-icon"></span>
                      </label>

                      <nav class="md-nav" data-md-level="1"
                        aria-labelledby="__nav_4_label" aria-expanded="true">
                        <label class="md-nav__title" for="__nav_4">
                          <span class="md-nav__icon md-icon"></span>
                          Compiler (flatc)（编译器）
                        </label>
                        <ul class="md-nav__list" data-md-scrollfix>

                          <li class="md-nav__item">
                            <a href="../building/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Building（构建）

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item md-nav__item--active">

                            <input class="md-nav__toggle md-toggle"
                              type="checkbox" id="__toc">

                            <label class="md-nav__link md-nav__link--active"
                              for="__toc">

                              <span class="md-ellipsis">
                                Using（使用）

                              </span>

                              <span class="md-nav__icon md-icon"></span>
                            </label>

                            <a href="index.html"
                              class="md-nav__link md-nav__link--active">

                              <span class="md-ellipsis">
                                Using（使用）

                              </span>

                            </a>

                            <nav class="md-nav md-nav--secondary"
                              aria-label="目录（Table of contents）">

                              <label class="md-nav__title" for="__toc">
                                <span class="md-nav__icon md-icon"></span>
                                目录（Table of contents）
                              </label>
                              <ul class="md-nav__list" data-md-component="toc"
                                data-md-scrollfix>

                                <li class="md-nav__item">
                                  <a href="#input-files" class="md-nav__link">
                                    <span class="md-ellipsis">
                                      输入文件（Input Files）
                                    </span>
                                  </a>

                                  <nav class="md-nav"
                                    aria-label="输入文件（Input Files）">
                                    <ul class="md-nav__list">

                                      <li class="md-nav__item">
                                        <a href="#schema-files"
                                          class="md-nav__link">
                                          <span class="md-ellipsis">
                                            模式文件（Schema Files）
                                          </span>
                                        </a>

                                      </li>

                                      <li class="md-nav__item">
                                        <a href="#data-files"
                                          class="md-nav__link">
                                          <span class="md-ellipsis">
                                            数据文件（Data Files）
                                          </span>
                                        </a>

                                      </li>

                                      <li class="md-nav__item">
                                        <a href="#additional-options"
                                          class="md-nav__link">
                                          <span class="md-ellipsis">
                                            附加选项（Additional options）
                                          </span>
                                        </a>

                                      </li>

                                    </ul>
                                  </nav>

                                </li>

                              </ul>

                            </nav>

                          </li>

                        </ul>
                      </nav>

                    </li>

                    <li class="md-nav__item md-nav__item--nested">

                      <input
                        class="md-nav__toggle md-toggle md-toggle--indeterminate"
                        type="checkbox" id="__nav_5">

                      <label class="md-nav__link" for="__nav_5"
                        id="__nav_5_label" tabindex="0">

                        <span class="md-ellipsis">
                          Schema (.fbs)（模式定义）

                        </span>

                        <span class="md-nav__icon md-icon"></span>
                      </label>

                      <nav class="md-nav" data-md-level="1"
                        aria-labelledby="__nav_5_label" aria-expanded="false">
                        <label class="md-nav__title" for="__nav_5">
                          <span class="md-nav__icon md-icon"></span>
                          Schema (.fbs)（模式定义）
                        </label>
                        <ul class="md-nav__list" data-md-scrollfix>

                          <li class="md-nav__item">
                            <a href="../schema/index.html" class="md-nav__link">

                              <span class="md-ellipsis">
                                Overview（概述）

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../evolution/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Evolution（演变）

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../grammar/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Grammar（语法）

                              </span>

                            </a>
                          </li>

                        </ul>
                      </nav>

                    </li>

                    <li class="md-nav__item md-nav__item--nested">

                      <input
                        class="md-nav__toggle md-toggle md-toggle--indeterminate"
                        type="checkbox" id="__nav_6">

                      <label class="md-nav__link" for="__nav_6"
                        id="__nav_6_label" tabindex="0">

                        <span class="md-ellipsis">
                          Language Guides（语言指南）

                        </span>

                        <span class="md-nav__icon md-icon"></span>
                      </label>

                      <nav class="md-nav" data-md-level="1"
                        aria-labelledby="__nav_6_label" aria-expanded="false">
                        <label class="md-nav__title" for="__nav_6">
                          <span class="md-nav__icon md-icon"></span>
                          Language Guides（语言指南）
                        </label>
                        <ul class="md-nav__list" data-md-scrollfix>

                          <li class="md-nav__item">
                            <a href="../languages/c/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                C

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/cpp/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                C++

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/c_sharp/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                C#

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/dart/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Dart

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/go/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Go

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/java/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Java

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/javascript/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                JavasScript

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/kotlin/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Kotlin

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/lobster/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Lobster

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/lua/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Lua

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/php/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                PHP

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/python/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Python

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/rust/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Rust

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/swift/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Swift

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../languages/typescript/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                TypeScript

                              </span>

                            </a>
                          </li>

                        </ul>
                      </nav>

                    </li>

                    <li class="md-nav__item">
                      <a href="../support/index.html" class="md-nav__link">

                        <span class="md-ellipsis">
                          Supported Configurations（支持的配置）

                        </span>

                      </a>
                    </li>

                    <li class="md-nav__item">
                      <a href="../white_paper/index.html" class="md-nav__link">

                        <span class="md-ellipsis">
                          White Paper（白皮书）

                        </span>

                      </a>
                    </li>

                    <li class="md-nav__item md-nav__item--nested">

                      <input
                        class="md-nav__toggle md-toggle md-toggle--indeterminate"
                        type="checkbox" id="__nav_9">

                      <label class="md-nav__link" for="__nav_9"
                        id="__nav_9_label" tabindex="0">

                        <span class="md-ellipsis">
                          Advanced（高级）

                        </span>

                        <span class="md-nav__icon md-icon"></span>
                      </label>

                      <nav class="md-nav" data-md-level="1"
                        aria-labelledby="__nav_9_label" aria-expanded="false">
                        <label class="md-nav__title" for="__nav_9">
                          <span class="md-nav__icon md-icon"></span>
                          Advanced（高级）
                        </label>
                        <ul class="md-nav__list" data-md-scrollfix>

                          <li class="md-nav__item">
                            <a href="../internals/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                FlatBuffers Internals（内部结构）

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../intermediate_representation/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Intermediate Representation（中间表示）

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../annotation/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Annotating Buffers (.afb)（缓冲区注释）

                              </span>

                            </a>
                          </li>

                          <li class="md-nav__item">
                            <a href="../benchmarks/index.html"
                              class="md-nav__link">

                              <span class="md-ellipsis">
                                Benchmarks（基准测试）

                              </span>

                            </a>
                          </li>

                        </ul>
                      </nav>

                    </li>

                    <li class="md-nav__item">
                      <a href="../flexbuffers/index.html" class="md-nav__link">

                        <span class="md-ellipsis">
                          FlexBuffers (Schema-less version)（无模式版本）

                        </span>

                      </a>
                    </li>

                    <li class="md-nav__item">
                      <a href="../contributing/index.html" class="md-nav__link">

                        <span class="md-ellipsis">
                          Contributing（贡献）

                        </span>

                      </a>
                    </li>

                  </ul>
                </nav>
              </div>
            </div>
          </div>

          <div class="md-sidebar md-sidebar--secondary"
            data-md-component="sidebar" data-md-type="toc">
            <div class="md-sidebar__scrollwrap">
              <div class="md-sidebar__inner">

                <nav class="md-nav md-nav--secondary"
                  aria-label="目录（Table of contents）">

                  <label class="md-nav__title" for="__toc">
                    <span class="md-nav__icon md-icon"></span>
                    目录（Table of contents）
                  </label>
                  <ul class="md-nav__list" data-md-component="toc"
                    data-md-scrollfix>

                    <li class="md-nav__item">
                      <a href="#input-files" class="md-nav__link">
                        <span class="md-ellipsis">
                          输入文件（Input Files）
                        </span>
                      </a>

                      <nav class="md-nav" aria-label="输入文件（Input Files）">
                        <ul class="md-nav__list">

                          <li class="md-nav__item">
                            <a href="#schema-files" class="md-nav__link">
                              <span class="md-ellipsis">
                                模式文件（Schema Files）
                              </span>
                            </a>

                          </li>

                          <li class="md-nav__item">
                            <a href="#data-files" class="md-nav__link">
                              <span class="md-ellipsis">
                                数据文件（Data Files）
                              </span>
                            </a>

                          </li>

                          <li class="md-nav__item">
                            <a href="#additional-options" class="md-nav__link">
                              <span class="md-ellipsis">
                                附加选项（Additional options）
                              </span>
                            </a>

                          </li>

                        </ul>
                      </nav>

                    </li>

                  </ul>

                </nav>
              </div>
            </div>
          </div>

          <div class="md-content" data-md-component="content">
            <article class="md-content__inner md-typeset">

              <a
                href="https://github.com/google/flatbuffers/edit/master/docs/source/flatc.md"
                title="编辑此页面（Edit this page）"
                class="md-content__button md-icon">

                <svg xmlns="http://www.w3.org/2000/svg"
                  viewBox="0 0 24 24"><path
                    d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z" /></svg>
              </a>

              <h1 id="flatbuffers-compiler-flatc">FlatBuffers 编译器
                (<code>flatc</code>)</h1>
              <p>FlatBuffers 的主要编译器被称为
                <code>flatc</code>，用于将模式定义转换成多种语言的代码文件。</p>
              <p>在<a href="../building/index.html">构建</a> <code>flatc</code>
                之后，按照以下方式使用：</p>
              <div
                class="highlight"><pre><span></span><code>flatc<span class="w"> </span><span class="o">[</span><span class="w"> </span>GENERATOR_OPTIONS<span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-o<span class="w"> </span>PATH<span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">[</span>-<span class="w"> </span>I<span class="w"> </span>PATH<span class="w"> </span><span class="o">]</span><span class="w"> </span>
<span class="w">  </span>FILES...<span class="w"> </span>
<span class="w">  </span><span class="o">[</span><span class="w"> </span>--<span class="w"> </span>BINARY_FILES...<span class="w"> </span><span class="o">]</span>
</code></pre></div>
              <ul>
                <li>
                  <p><code>GENERATOR_OPTIONS</code>
                    指定要为哪些语言编译代码以及启用/禁用的各种功能。</p>
                </li>
                <li>
                  <p><code>-o PATH</code> 指定生成文件的存放路径。如果未指定，默认为当前路径。</p>
                </li>
                <li>
                  <p><code>-I PATH</code> 指定包含的模式文件所在的路径。如果未指定，默认为当前路径。</p>
                </li>
              </ul>
              <h2 id="input-files">输入文件（Input Files）</h2>
              <p><code>FILES...</code> 指定一个或多个要处理的模式或数据文件。它们按提供的顺序进行处理。</p>
              <h3 id="schema-files">模式文件（Schema Files）</h3>
              <p>对于模式文件，语言指示符表明要为哪些语言生成代码。</p>
              <ul>
                <li><code>--cpp</code>：C++</li>
                <li><code>--java</code>：Java</li>
                <li><code>--kotlin</code>：Kotlin</li>
                <li><code>--csharp</code>：C#</li>
                <li><code>--go</code>：Golang</li>
                <li><code>--python</code>：Python</li>
                <li><code>--js</code>：JavaScript</li>
                <li><code>--ts</code>：TypeScript</li>
                <li><code>--php</code>：PHP</li>
                <li><code>--dart</code>：Dart</li>
                <li><code>--lua</code>：Lua</li>
                <li><code>--lobster</code>：Lobster</li>
                <li><code>--rust</code>：Rust</li>
                <li><code>--swift</code>：Swift</li>
                <li><code>--nim</code>：Nim</li>
              </ul>
              <p>此外，添加：</p>
              <ul>
                <li><code>--grpc</code> 将为 gRPC 生成 RPC 存根代码（并非所有语言都可用）</li>
              </ul>
              <h3 id="data-files">数据文件（Data Files）</h3>
              <p>如果 <code>FILES...</code> 包含数据文件，可以将它们导出为二进制或 JSON 表示形式。</p>
              <ul>
                <li><code>--binary</code>, <code>-b</code>：生成包含序列化 flatbuffer
                  的二进制文件。</li>
                <li><code>--json</code>, <code>-j</code>：从序列化的 flatbuffer 生成
                  JSON 文件。</li>
              </ul>
              <p>这两个选项都要求相应的模式文件首先包含在 <code>FILES...</code> 列表中。</p>
              <div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input
                  checked="checked" id="to-binary" name="__tabbed_1"
                  type="radio" /><input id="to-json" name="__tabbed_1"
                  type="radio" /><div class="tabbed-labels"><label
                    for="to-binary">转换为二进制（To Binary）</label><label
                    for="to-json">转换为 JSON（To JSON）</label></div>
                <div class="tabbed-content">
                  <div class="tabbed-block">
                    <p>要使用模式 <code>myschema.fbs</code> 序列化
                      <code>mydata.json</code> 中的 JSON 数据：</p>
                    <div
                      class="highlight"><pre><span></span><code>flatc<span class="w"> </span>--binary<span class="w"> </span>myschema.fbs<span class="w"> </span>mydata.json
</code></pre></div>
                    <p>这将生成一个包含序列化 flatbuffer 数据的 <code>mydata_wire.bin</code>
                      文件。</p>
                  </div>
                  <div class="tabbed-block">
                    <p>要使用模式 <code>myschema.fbs</code> 将序列化的二进制 flatbuffer
                      <code>mydata.bin</code> 转换为 JSON：</p>
                    <div
                      class="highlight"><pre><span></span><code>flatc<span class="w"> </span>--json<span class="w"> </span>myschema.fbs<span class="w"> </span>mydata.bin
</code></pre></div>
                    <p>这将生成一个 <code>mydata.json</code> 文件。</p>
                  </div>
                </div>
              </div>
              <h3 id="additional-options">附加选项（Additional options）</h3>
              <ul>
                <li>
                  <p><code>-o PATH</code>：将所有生成的文件输出到
                    PATH（可以是绝对路径或相对于当前目录的路径）。如果省略，PATH 将是当前目录。PATH
                    应该以系统的路径分隔符结尾，例如 <code>/</code> 或 <code>\</code>。</p>
                </li>
                <li>
                  <p><code>-I PATH</code>：当遇到 <code>include</code>
                    语句时，尝试从此路径加载文件。将按给定顺序尝试路径，如果全部失败（或未指定），则尝试相对于被解析的模式文件的路径加载。</p>
                </li>
                <li>
                  <p><code>-M</code>：为生成的文件打印 make 规则。</p>
                </li>
                <li>
                  <p><code>--strict-json</code>：要求并生成严格的
                    JSON（字段名用引号括起来，表/向量中没有尾随逗号）。默认情况下，不需要/不生成引号，并且允许尾随逗号。</p>
                </li>
                <li>
                  <p><code>--allow-non-utf8</code>：将非 UTF-8 输入通过解析器并在 JSON
                    中发出非标准 \x 转义。（默认是对非 UTF-8 输入引发解析错误。）</p>
                </li>
                <li>
                  <p><code>--natural-utf8</code>：以人类可读的字符串输出带有 UTF-8
                    的字符串。默认情况下，UTF-8 字符以 \uXXXX 转义形式打印。</p>
                </li>
                <li>
                  <p><code>--defaults-json</code>：在写入 JSON 文本时输出值等于默认值的字段。</p>
                </li>
                <li>
                  <p><code>--no-prefix</code>：在生成的 C++ 中不要用它们的枚举类型为枚举值加前缀。</p>
                </li>
                <li>
                  <p><code>--scoped-enums</code>：在生成的 C++ 中使用 C++11
                    风格的作用域和强类型枚举。这也意味着 <code>--no-prefix</code>。</p>
                </li>
                <li>
                  <p><code>--no-emit-min-max-enum-values</code>：禁止为作用域枚举和前缀枚举生成
                    MIN 和 MAX 枚举值。</p>
                </li>
                <li>
                  <p><code>--gen-includes</code>：（已弃用），这是默认行为。如果需要原始行为（无包含语句），请使用
                    <code>--no-includes</code>。</p>
                </li>
                <li>
                  <p><code>--no-includes</code>：不为生成的文件依赖的包含的模式生成包含语句（C++ /
                    Python）。</p>
                </li>
                <li>
                  <p><code>--gen-mutable</code>：生成额外的非常量访问器，用于就地修改
                    FlatBuffers。</p>
                </li>
                <li>
                  <p><code>--gen-onefile</code>：为 C#、Go 和 Python 生成单个输出文件。</p>
                </li>
                <li>
                  <p><code>--gen-name-strings</code>：为 C++ 生成类型名称函数。</p>
                </li>
                <li>
                  <p><code>--gen-object-api</code>：生成额外的基于对象的 API。这个 API 比基本 API
                    更方便用于对象构造和修改，但代价是效率（对象分配）。仅在其他选项不足时才建议使用。</p>
                </li>
                <li>
                  <p><code>--gen-compare</code>：为基于对象的 API 类型生成 operator==。</p>
                </li>
                <li>
                  <p><code>--gen-nullable</code>：为 C++ 指针添加 Clang _Nullable，或为
                    Java 添加 @Nullable。</p>
                </li>
                <li>
                  <p><code>--gen-generated</code>：为 Java 添加 @Generated 注解。</p>
                </li>
                <li>
                  <p><code>--gen-jvmstatic</code>：为 Kotlin 方法添加 @JvmStatic
                    注解，用于伴生对象中，以便从 Java 到 Kotlin 的互操作。</p>
                </li>
                <li>
                  <p><code>--gen-all</code>：不仅为当前模式文件生成代码，还为它包含的所有文件生成代码。如果语言使用单个文件输出（默认情况下
                    C++ 和 JS 是这种情况），所有代码将放在这一个文件中。</p>
                </li>
                <li>
                  <p><code>--cpp-include</code>：在生成的文件中添加 #include</p>
                </li>
                <li>
                  <p><code>--cpp-ptr-type T</code>：设置对象 API 指针类型（默认
                    std::unique_ptr）</p>
                </li>
                <li>
                  <p><code>--cpp-str-type T</code>：设置对象 API 字符串类型（默认
                    std::string）。必须支持 T::c_str()、T::length() 和
                    T::empty()。自定义类型还需要能够从 std::string 构造（参见 --cpp-str-flex-ctor
                    选项以更改此行为）。</p>
                </li>
                <li>
                  <p><code>--cpp-str-flex-ctor</code>：不要通过从 Flatbuffers 传递
                    std::string 来构造自定义字符串类型，而是传递（char* +
                    length）。这允许自定义字符串类型的高效构造，包括零拷贝构造。</p>
                </li>
                <li>
                  <p><code>--no-cpp-direct-copy</code>：不为 C++ 基于对象的 API
                    生成直接复制方法。</p>
                </li>
                <li>
                  <p><code>--cpp-std CPP_STD</code>：使用所选 C++ 标准的特性生成 C++ 代码。支持的
                    <code>CPP_STD</code> 值：</p>
                  <ul>
                    <li><code>c++0x</code> - 生成与旧编译器（VS2010）兼容的代码，</li>
                    <li><code>c++11</code> - 使用 C++11 代码生成器（默认），</li>
                    <li><code>c++17</code> - 在生成的代码中使用 C++17 特性（实验性）。</li>
                  </ul>
                </li>
                <li>
                  <p><code>--object-prefix</code>：自定义 C++ 基于对象的 API 的类前缀。</p>
                </li>
                <li>
                  <p><code>--object-suffix</code>：自定义 C++ 基于对象的 API 的类后缀。</p>
                </li>
                <li>
                  <p><code>--go-namespace</code>：在 Golang 中生成覆盖的命名空间。</p>
                </li>
                <li>
                  <p><code>--go-import</code>：在 Golang 中为 flatbuffers
                    生成覆盖的导入。（默认是 "github.com/google/flatbuffers/go"）。</p>
                </li>
                <li>
                  <p><code>--raw-binary</code>：允许读取没有 file_indentifier
                    的二进制文件。如果模式不匹配，这可能会导致 flatc 崩溃。</p>
                </li>
                <li>
                  <p><code>--size-prefixed</code>：输入二进制文件是大小前缀缓冲区。</p>
                </li>
                <li>
                  <p><code>--proto</code>：期望输入文件是 .proto 文件（协议缓冲区）。输出相应的 .fbs
                    文件。当前支持：<code>package</code>、<code>message</code>、<code>enum</code>、嵌套声明、<code>import</code>（使用
                    <code>-I</code>
                    指定路径）、<code>extend</code>、<code>oneof</code>、<code>group</code>。不支持但会跳过而不报错的有：<code>option</code>、<code>service</code>、<code>extensions</code>
                    和其他大部分内容。</p>
                </li>
                <li>
                  <p><code>--oneof-union</code>：将 .proto oneofs 转换为 flatbuffer
                    联合体。</p>
                </li>
                <li>
                  <p><code>--grpc</code>：为指定的语言生成 GRPC 接口。</p>
                </li>
                <li>
                  <p><code>--schema</code>：序列化模式而不是 JSON（与 -b
                    一起使用）。这将输出指定模式的二进制版本，该版本本身对应于 reflection/reflection.fbs
                    模式。加载此二进制文件是反射功能的基础。</p>
                </li>
                <li>
                  <p><code>--bfbs-comments</code>：向二进制模式文件添加文档注释。</p>
                </li>
                <li>
                  <p><code>--conform
                      FILE</code>：指定后续模式应该是其演变的模式。如果不是，则给出错误。用于检查模式修改是否破坏模式演变规则。</p>
                </li>
                <li>
                  <p><code>--conform-includes PATH</code>：使用 <code>--conform
                      PATH</code> 给出的模式的包含路径。</p>
                </li>
                <li>
                  <p><code>--filename-suffix SUFFIX</code>：附加到生成文件名的后缀。默认是
                    '_generated'。</p>
                </li>
                <li>
                  <p><code>--filename-ext
                      EXTENSION</code>：附加到生成文件名的扩展名。默认是语言特定的（例如，C++ 的
                    "h"）。当指定多种语言时不应使用此选项。</p>
                </li>
                <li>
                  <p><code>--include-prefix PATH</code>：在任何生成的包含语句前添加此路径。</p>
                </li>
                <li>
                  <p><code>--keep-prefix</code>：保留模式包含语句的原始前缀。</p>
                </li>
                <li>
                  <p><code>--reflect-types</code>：向代码生成添加最小的类型反射。</p>
                </li>
                <li>
                  <p><code>--reflect-names</code>：添加最小的类型/名称反射。</p>
                </li>
                <li>
                  <p><code>--root-type T</code>：选择或覆盖默认的 root_type。</p>
                </li>
                <li>
                  <p><code>--require-explicit-ids</code>：解析模式时，要求显式 id（id:
                    x）。</p>
                </li>
                <li>
                  <p><code>--force-defaults</code>：从 JSON 输出二进制时发出默认值。</p>
                </li>
                <li>
                  <p><code>--force-empty</code>：从对象 API 表示序列化时，强制字符串和向量为空而不是
                    null。</p>
                </li>
                <li>
                  <p><code>--force-empty-vectors</code>：从对象 API 表示序列化时，强制向量为空而不是
                    null。</p>
                </li>
                <li>
                  <p><code>--flexbuffers</code>：与 "binary" 和 "json"
                    选项一起使用，生成使用无模式 FlexBuffers 的数据。</p>
                </li>
                <li>
                  <p><code>--no-warnings</code>：禁止所有警告消息。</p>
                </li>
                <li>
                  <p><code>--cs-global-alias</code>：在所有用户生成的 csharp 类和结构前添加
                    <code>global::</code>。</p>
                </li>
                <li>
                  <p><code>--json-nested-bytes</code>：允许将 nested_flatbuffer 字段在
                    JSON 中解析为字节向量，除非随后由验证器检查，否则这是不安全的。</p>
                </li>
                <li>
                  <p><code>--python-no-type-prefix-suffix</code>：跳过发出以类型名前缀的
                    Python 函数。</p>
                </li>
                <li>
                  <p><code>--python-typing</code>：生成 Python 类型注解。</p>
                </li>
              </ul>
              <p>额外的 gRPC 选项：</p>
              <ul>
                <li>
                  <p><code>--grpc-filename-suffix</code>：<code>[C++]</code>
                    生成文件名的可选后缀。例如，使用 <code>--grpc-filename-suffix=.fbs</code> 编译
                    C++ 的 gRPC 将生成 <code>{name}.fbs.h</code> 和
                    <code>{name}.fbs.cc</code> 文件。</p>
                </li>
                <li>
                  <p><code>--grpc-additional-header</code>：<code>[C++]</code>
                    生成文件中包含的附加头文件。</p>
                </li>
                <li>
                  <p><code>--grpc-search-path</code>：<code>[C++]</code> gRPC
                    运行时路径的可选前缀。例如，使用 <code>--grpc-search-path=some/path</code>
                    编译 C++ 的 gRPC 将生成以下包含：</p>
                  <div
                    class="highlight"><pre><span></span><code><span class="w">  </span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;some/path/grpcpp/impl/codegen/async_stream.h&quot;</span>
<span class="w">  </span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;some/path/grpcpp/impl/codegen/async_unary_call.h&quot;</span>
<span class="w">  </span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;some/path/grpcpp/impl/codegen/method_handler.h&quot;</span>
<span class="w">  </span><span class="p">...</span>
</code></pre></div>
                </li>
                <li>
                  <p><code>--grpc-use-system-headers</code>：<code>[C++]</code>
                    编译 C++ 的 gRPC 时，是否为所有头文件生成 <code>#include
                      &lt;header&gt;</code> 而不是 <code>#include
                      "header.h"</code>。例如，使用
                    <code>--grpc-use-system-headers</code> 编译 C++ 的 gRPC
                    将生成以下包含：</p>
                  <div
                    class="highlight"><pre><span></span><code><span class="w">  </span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;some/path/grpcpp/impl/codegen/async_stream.h&gt;</span>
<span class="w">  </span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;some/path/grpcpp/impl/codegen/async_unary_call.h&gt;</span>
<span class="w">  </span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;some/path/grpcpp/impl/codegen/method_handler.h&gt;</span>
<span class="w">  </span><span class="p">...</span>
</code></pre></div>
                  <p>注意：此选项可以使用 <code>--no-grpc-use-system-headers</code>
                    否定。</p>
                </li>
                <li>
                  <p><code>--grpc-python-typed-handlers</code>：<code>[Python]</code>
                    是否生成使用生成的 Python 类而不是原始字节进行请求/响应的类型化处理程序。</p>
                </li>
              </ul>
              <p>注意：生成器的短格式选项已弃用，尽可能使用长格式。</p>

            </article>
          </div>

          <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>

          <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
        </div>

      </main>

      <footer class="md-footer">

        <nav class="md-footer__inner md-grid" aria-label="页脚（Footer）">

          <a href="../building/index.html"
            class="md-footer__link md-footer__link--prev"
            aria-label="上一页: 构建（Building）">
            <div class="md-footer__button md-icon">

              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path
                  d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z" /></svg>
            </div>
            <div class="md-footer__title">
              <span class="md-footer__direction">
                上一页（Previous）
              </span>
              <div class="md-ellipsis">
                构建（Building）
              </div>
            </div>
          </a>

          <a href="../schema/index.html"
            class="md-footer__link md-footer__link--next"
            aria-label="下一页: 概述（Overview）">
            <div class="md-footer__title">
              <span class="md-footer__direction">
                下一页（Next）
              </span>
              <div class="md-ellipsis">
                概述（Overview）
              </div>
            </div>
            <div class="md-footer__button md-icon">

              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path
                  d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z" /></svg>
            </div>
          </a>

        </nav>

        <div class="md-footer-meta md-typeset">
          <div class="md-footer-meta__inner md-grid">
            <div class="md-copyright">

              <div class="md-copyright__highlight">
                版权所有 &copy; 2025 Google
              </div>

              由
              <a href="https://squidfunk.github.io/mkdocs-material/"
                target="_blank" rel="noopener">
                Material for MkDocs
              </a>
              制作

            </div>

            <div class="md-social">

              <a href="https://github.com/google/flatbuffers" target="_blank"
                rel="noopener" title="github.com" class="md-social__link">
                <svg xmlns="http://www.w3.org/2000/svg"
                  viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path
                    d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" /></svg>
              </a>

              <a href="https:///discord.gg/6qgKs3R" target="_blank"
                rel="noopener" title class="md-social__link">
                <svg xmlns="http://www.w3.org/2000/svg"
                  viewBox="0 0 640 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path
                    d="M524.531 69.836a1.5 1.5 0 0 0-.764-.7A485 485 0 0 0 404.081 32.03a1.82 1.82 0 0 0-1.923.91 338 338 0 0 0-14.9 30.6 447.9 447.9 0 0 0-134.426 0 310 310 0 0 0-15.135-30.6 1.89 1.89 0 0 0-1.924-.91 483.7 483.7 0 0 0-119.688 37.107 1.7 1.7 0 0 0-.788.676C39.068 183.651 18.186 294.69 28.43 404.354a2.02 2.02 0 0 0 .765 1.375 487.7 487.7 0 0 0 146.825 74.189 1.9 1.9 0 0 0 2.063-.676A348 348 0 0 0 208.12 430.4a1.86 1.86 0 0 0-1.019-2.588 321 321 0 0 1-45.868-21.853 1.885 1.885 0 0 1-.185-3.126 251 251 0 0 0 9.109-7.137 1.82 1.82 0 0 1 1.9-.256c96.229 43.917 200.41 43.917 295.5 0a1.81 1.81 0 0 1 1.924.233 235 235 0 0 0 9.132 7.16 1.884 1.884 0 0 1-.162 3.126 301.4 301.4 0 0 1-45.89 21.83 1.875 1.875 0 0 0-1 2.611 391 391 0 0 0 30.014 48.815 1.86 1.86 0 0 0 2.063.7A486 486 0 0 0 610.7 405.729a1.88 1.88 0 0 0 .765-1.352c12.264-126.783-20.532-236.912-86.934-334.541M222.491 337.58c-28.972 0-52.844-26.587-52.844-59.239s23.409-59.241 52.844-59.241c29.665 0 53.306 26.82 52.843 59.239 0 32.654-23.41 59.241-52.843 59.241m195.38 0c-28.971 0-52.843-26.587-52.843-59.239s23.409-59.241 52.843-59.241c29.667 0 53.307 26.82 52.844 59.239 0 32.654-23.177 59.241-52.844 59.241" /></svg>
              </a>

              <a href="https://twitter.com/dbaileychess" target="_blank"
                rel="noopener" title="twitter.com" class="md-social__link">
                <svg xmlns="http://www.w3.org/2000/svg"
                  viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path
                    d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9zm-24.8 373.8h39.1L151.1 88h-42z" /></svg>
              </a>

            </div>

          </div>
        </div>
      </footer>

    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>

    <script id="__config"
      type="application/json">{"base": "..", "features": ["content.code.annotate", "content.tabs.link", "navigation.expand", "navigation.footer", "header.autohide", "content.action.edit"], "search": "../assets/javascripts/workers/search.f8cc74c7.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>

    <script src="../assets/javascripts/bundle.c8b220af.min.js"></script>

  </body>

  <!-- Mirrored from flatbuffers.dev/flatc/ by HTTrack Website Copier/3.x [XR&CO'2014], Thu, 08 May 2025 07:01:57 GMT -->
</html>